package pdf;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
 * 无限制权限的pdf转换成图片
 *
 * @author byc
 * @date 2024-02-23
 */
public class PdfChangePNG {
    public static void main(String[] args) throws IOException {
        // 加载PDF文档
        File pdfFile = new File("D:\\桌面文件\\移动工作\\7锡澄运河智慧航道\\发布版：锡澄运河智慧航道工程施工图设计.pdf");
        PDDocument document = PDDocument.load(pdfFile);

        // 创建PDF渲染器
        PDFRenderer pdfRenderer = new PDFRenderer(document);

        // 循环遍历PDF的每一页，并将其渲染为图片
        for (int page = 0; page < document.getNumberOfPages(); ++page) {
            BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300); // DPI设置为300

            // 将图片写入文件
            ImageIO.write(bim, "JPEG", new File("D:\\code\\杂货demo\\pdfsave\\page-" + (page + 1) + ".jpg"));
        }

        // 关闭PDF文档
        document.close();
    }

}
